package cn.core.sign.mapper;

import cn.core.sign.eo.PostStaff;
import cn.core.sign.qo.PostStaffQO;
import cn.core.sign.vo.PostStaffVO;
import cn.core.sign.vo.StaffPostNexusVO;
import cn.core.tool.util.Paging;
import org.apache.ibatis.annotations.Param;

import java.util.Collection;

/**
 * 岗位员工 mybatis 持久化接口
 */
public interface PostStaffMapper {

  /**
   * 岗位员工 >>> 新增
   */
  public void save(@Param("eo") PostStaff eo) throws Exception;

  /**
   * 岗位员工 >>> 批量新增
   */
  public void saveBatch(@Param("paging") Paging<?> paging, @Param("eos") Collection<PostStaff> eos) throws Exception;

  /**
   * 岗位员工 >>> 全字段更新
   */
  public void update(@Param("eo") PostStaff eo) throws Exception;

  /**
   * 岗位员工 >>> 批量全字段更新
   */
  public void updateBatch(@Param("paging") Paging<?> paging, @Param("eos") Collection<PostStaff> eos) throws Exception;

  /**
   * 岗位员工 >>> 部分字段更新
   */
  public void updateSome(@Param("eo") PostStaff eo) throws Exception;

  /**
   * 岗位员工 >>> 批量部分字段更新
   */
  public void updateSomeBatch(@Param("paging") Paging<?> paging, @Param("eos") Collection<PostStaff> eos) throws Exception;

  /**
   * 岗位员工 >>> 条件更新
   */
  public void updateQuery(@Param("eo") PostStaff eo, @Param("qo") PostStaffQO qo) throws Exception;

  /**
   * 岗位员工 >>> 删除
   */
  public void remove(@Param("eo") PostStaff eo) throws Exception;

  /**
   * 岗位员工 >>> 批量删除
   */
  public void removeBatch(@Param("eos") Collection<PostStaff> eos) throws Exception;

  /**
   * 岗位员工 >>> 条件删除
   */
  public void removeQuery(@Param("qo") PostStaffQO qo) throws Exception;

  /**
   * 岗位员工 >>> 数据量
   */
  public Long count(@Param("qo") PostStaffQO qo) throws Exception;

  /**
   * 岗位员工 >>> 主键查询
   */
  public PostStaff pk(@Param("qo") PostStaffQO qo) throws Exception;

  /**
   * 岗位员工 >>> 查询
   */
  public Collection<PostStaff> query(@Param("qo") PostStaffQO qo) throws Exception;

  /**
   * 岗位员工 >>> 分页
   */
  public Collection<PostStaff> paging(@Param("paging") Paging<?> paging, @Param("qo") PostStaffQO qo) throws Exception;

  /**
   * 岗位员工 >>> 业务数据量
   */
  public Long countVo(@Param("qo") PostStaffQO qo) throws Exception;

  /**
   * 岗位员工 >>> 业务主键查询
   */
  public PostStaffVO pkVo(@Param("qo") PostStaffQO qo) throws Exception;

  /**
   * 岗位员工 >>> 业务查询
   */
  public Collection<PostStaffVO> queryVo(@Param("qo") PostStaffQO qo) throws Exception;

  /**
   * 岗位员工 >>> 业务分页
   */
  public Collection<PostStaffVO> pagingVo(@Param("paging") Paging<?> paging, @Param("qo") PostStaffQO qo) throws Exception;

  /**
   * 员工Id >>> 岗位列表
   */
  public Collection<String> getPostListByStaffId(@Param("staffId") String staffId) throws Exception;

  /**
   * 员工Id >>> 默认岗位Id
   */
  public String getDefaultPostIdByStaffId(@Param("staffId") String staffId) throws Exception;

  /**
   * 岗位员工 >>> 员工岗位关系列表
   */
  public Collection<StaffPostNexusVO> getStaffPostNexus(@Param("weightOrderAsc") String weightOrderAsc) throws Exception;

}
